export function filterSize(size) {
  if (!size) return "-";
  if (size < pow1024(1)) return size + " B";
  if (size < pow1024(2)) return (size / pow1024(1)).toFixed(2) + " KB";
  if (size < pow1024(3)) return (size / pow1024(2)).toFixed(2) + " MB";
  if (size < pow1024(4)) return (size / pow1024(3)).toFixed(2) + " GB";
  return (size / pow1024(4)).toFixed(2) + " TB";
}

function pow1024(num) {
  return Math.pow(1024, num);
}

export function getUrlParam() {
  // 获取当前页面的 URL
  const url = window.location.search;
  // 创建一个 URLSearchParams 对象
  const params = new URLSearchParams(url);
  // 创建一个空对象来存储查询参数
  const queryParams = {};
  // 遍历 URLSearchParams 对象，并将每个参数添加到 queryParams 对象中
  for (const [key, value] of params.entries()) {
    queryParams[key] = value;
  }
  // 返回包含查询参数的对象
  return queryParams;
}

//循环调用 保证直至成功
export function createRetryPromiseCaller(a) {
  return async function () {
    async function attemptCall() {
      try {
        const result = await a();
        // 如果成功，返回结果
        return result;
      } catch (error) {
        console.error("调用失败，等待一分钟重试:", error);
        // 等待一分钟后重试
        await new Promise((resolve) => setTimeout(resolve, 60000));
        // 递归调用自身进行重试
        return await attemptCall();
      }
    }

    // 调用尝试函数并返回结果
    return await attemptCall();
  };
}
